package com.qmmessage.sdk.models;

import com.google.gson.reflect.TypeToken;
import com.qmmessage.sdk.common.util.QmJsonUtil;
import com.qmmessage.sdk.common.util.QmStrUtils;

import java.util.HashMap;
import java.util.List;

/**
 * @author qm
 */
public class MessagePhoneVariableValues extends HashMap<String, MessageVariableValues> {
    /**
     * empty phone params
     */
    public static MessagePhoneVariableValues emptyValues(String phoneNumber) {
        MessagePhoneVariableValues map = new MessagePhoneVariableValues();
        if (QmStrUtils.isNotBlank(phoneNumber)) {
            map.put(phoneNumber, MessageVariableValues.emptyValues());
        }
        return map;
    }

    /**
     * empty phone params
     */
    public static MessagePhoneVariableValues emptyValues(List<String> phoneNumbers) {
        if (phoneNumbers != null && !phoneNumbers.isEmpty()) {
            MessagePhoneVariableValues map = new MessagePhoneVariableValues();
            for (String phoneNumber : phoneNumbers) {
                map.put(phoneNumber, MessageVariableValues.emptyValues());
            }
            return map;
        }
        return new MessagePhoneVariableValues();
    }

    public MessageVariableValues putJsonParam(String key, String json) {
        MessageVariableValues value = QmJsonUtil.fromJson(json,
                TypeToken.getParameterized(MessageVariableValues.class).getType());
        return super.put(key, value);
    }
}
